%Options slr
%options fp=KWMTLexer,prefix=Char_
%options package=edu.pku.sei.transformation.controller
%options template=KeywordTemplateF.gi
%options export_terminals=("MicroTransParserSym.java", "TK_")

%Import
KWLexerMapF.gi
%End


%Define
$action_class /.$file_prefix./
$eof_char /.Char_EOF./
%End

%Export
foreach forall existone

new delete

if then else endif

and or not

check enforce match full partial

transformation rule env trace

null invalid

def based

true false

evaluate

exclusiveVars

union

%End



%Start
KeyWord
%End

%Rules
KeyWord ::=
		i f
		/.$BeginAction
			$setResult($_if);
		  $EndAction
		./
		| t h e n
		/.$BeginAction
			$setResult($_then);
		  $EndAction
		./
		| e l s e
		/.$BeginAction
			$setResult($_else);
		  $EndAction
		./
		| e n d i f
		/.$BeginAction
			$setResult($_endif);
		  $EndAction
		./
		
		| f o r e a c h
		/.$BeginAction
			$setResult($_foreach);
		  $EndAction
		./
		| f o r a l l
		/.$BeginAction
			$setResult($_forall);
		  $EndAction
		./
		| e x i s t o n e
		/.$BeginAction
			$setResult($_existone);
		  $EndAction
		./
		| n e w 
		/.$BeginAction
			$setResult($_new);
		  $EndAction
		./
		| d e l e t e 
		/.$BeginAction
			$setResult($_delete);
		  $EndAction
		./
		
		| a n d
		/.$BeginAction
			$setResult($_and);
		  $EndAction
		./
		| o r
		/.$BeginAction
			$setResult($_or);
		  $EndAction
		./
		| n o t
		/.$BeginAction
			$setResult($_not);
		  $EndAction
		./
		| t r a n s f o r m a t i o n
		/.$BeginAction
			$setResult($_transformation);
		  $EndAction
		./
		| r u l e
		/.$BeginAction
			$setResult($_rule);
		  $EndAction
		./
		| n u l l
		/.$BeginAction
			$setResult($_null);
		  $EndAction
		./
		| i n v a l i d
		/.$BeginAction
			$setResult($_invalid);
		  $EndAction
		./
		
		| c h e c k
		/.$BeginAction
			$setResult($_check);
		  $EndAction
		./
		| e n f o r c e
		/.$BeginAction
			$setResult($_enforce);
		  $EndAction
		./
		| m a t c h
		/.$BeginAction
			$setResult($_match);
		  $EndAction
		./
		| f u l l
		/.$BeginAction
			$setResult($_full);
		  $EndAction
		./
		| p a r t i a l
		/.$BeginAction
			$setResult($_partial);
		  $EndAction
		./
		
		| d e f
		/.$BeginAction
			$setResult($_def);
		  $EndAction
		./
		| b a s e d
		/.$BeginAction
			$setResult($_based);
		  $EndAction
		./
		| t r u e
		/.$BeginAction
			$setResult($_true);
		  $EndAction
		./
		| f a l s e
		/.$BeginAction
			$setResult($_false);
		  $EndAction
		./
		| e n v
		/.$BeginAction
			$setResult($_env);
		  $EndAction
		./
		| t r a c e
		/.$BeginAction
			$setResult($_trace);
		  $EndAction
		./
		| e v a l u a t e
		/.$BeginAction
			$setResult($_evaluate);
		  $EndAction
		./
		| e x c l u s i v e V a r s
		/.$BeginAction
			$setResult($_exclusiveVars);
		  $EndAction
		./
		| u n i o n
		/.$BeginAction
			$setResult($_union);
		  $EndAction
		./
%End